Characterization test

레거시 코드를 수정할 때 해당 코드의 “바람직한 동작” 또는 “문서화된 동작”이 아니라 “실제 현재의 동작”을 보존하는 게 중요한 경우가 많다. 이런 상황에서 “실제 현재의 동작”이 유지되는 걸 보장하기 위한 목적한 목적으로 작성하는 테스트를 캐릭터리제이션 테스트라고 부른다.

단위 테스트와 같은 기술을 쓰지만 목적이 다르다.

A characterization test is a test that characterizes the actual behavior of a piece of code. There’s no “Well, it should do this” or “I think it does that.” The tests document the actual current behavior of the system.

Steps:

  1. Use a piece of code in a test harness.
  2. Write an assertion that you know will fail.
  3. Let the failure tell you what the behavior is.
  4. Change the test so that it expects the behavior that the code produces.
  5. Repeat.

—Working effectively with legacy code

2024 © ak